The present invention relates to a method for optimizing if statements in a program, and more specifically relates to a method of if statement optimization including transformation (move, cache in a variable, etc.) of conditional expressions in consideration of an inclusion relation between conditional expressions of if statements in a program.
The same if statement may be repeatedly generated when, for example, a program is machine-generated. Repeatedly executing the same if statement in such a case causes a corresponding decrease in processing performance (speed) of the program. It is therefore desirable to optimize if statements by some method, to avoid repeated execution of the same if statement in the program.
Regarding the optimization of if statements, US2007/0169039 discloses the following. In a method of converting a first intermediate representation of automatically generated code into a second intermediate representation through an optimization technique, the first intermediate representation is optimized by moving a section of code to a location where the section of code is executed or combining a plurality of loops (such as if statements) into a single loop, thus reducing the number of times a loop is executed (e.g. the number of memory accesses).
JP2012-014526 discloses a program code structure conversion apparatus that, in the case where an if statement block is present in a function call part extracted from original code and a function call is used in the conditional expression of the if statement, moves the conditional expression to a position before the if statement and temporarily assigns it to “local_cond1”, and substitutes the temporarily assigned “local_cond1” in the conditional expression of the if statement, to remove the function call from the conditional expression in the if statement.